package com.cloudbroker.bcs.platform.dav.bizapi.service.business.question;

import com.cloudbroker.bcs.common.annotation.MayLogin;
import com.cloudbroker.bcs.common.annotation.NoRefreshSession;
import com.cloudbroker.bcs.common.annotation.RequiredPermissions;
import com.cloudbroker.bcs.common.entity.HSBCPSBackNumVO;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.PermissionsValue;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.result.QuestionListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.result.TenantQuestionListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAnsListForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAnswerForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAnswerUpdateForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAskForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuesAskNumForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.QuestionIdForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.question.vo.TenantQuesAskForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.TenantKeyListQryForm;

public interface QuestionAnswerBizService {
    
    /**
     * 5071001
     * 问与答列表
     * */
    @MayLogin
    public QuestionListResult funcQuestionAnswerListByFans(QuesAnsListForm param);
    
    /**
     * 5071002
     * 提问
     * */
    public HSBCPSBackVO funcAskQuestion(QuesAskForm param);
    
    /**
     * 5071003
     * 我的问题被回答提醒
     * */
    public HSBCPSBackNumVO funcAnswerdNum(QuesAskNumForm param);
    
    /**
     * 5071005
     * 提问回复
     * */
    @RequiredPermissions(value = { PermissionsValue.QUESTION })
    public HSBCPSBackVO funcQuestionAnswer(QuesAnswerForm param);
    
    /**
     * 5071006
     * 删除提问
     * */
    @RequiredPermissions(value = { PermissionsValue.QUESTION })
    public HSBCPSBackVO funcQuestionDel(QuestionIdForm param);
    
    /**
     * 5071007
     * 提问回复修改
     * */
    @RequiredPermissions(value = { PermissionsValue.QUESTION })
    public HSBCPSBackVO funcQuestionAnswerUpdate(QuesAnswerUpdateForm param);
    
    /**
     * 5071008
     * 获取未读问题条数
     * */
    @NoRefreshSession
    public HSBCPSBackNumVO funcQuestionNoreadNum(HSBCPSVO param);
    
    @RequiredPermissions(value = { PermissionsValue.QUESTION })
    public QuestionListResult funcQuestionAnswerListByDav(QuesAnsListForm param);
    
    /**
     * 5071009粉丝删除自己的提问
     * @param param
     * @return
     */
    public HSBCPSBackVO funcFansQuestionDel(QuestionIdForm param);
    
    /**
     * 多投顾问答列表
     * @param form
     * @return
     */
    @MayLogin
    public TenantQuestionListResult funcQuestionAnswerListByTenant(TenantKeyListQryForm form);
    
    /**
     * 多投顾提问
     * @param quesAskForm
     * @return
     */
    public HSBCPSBackVO funcAskQuestionByTenant(TenantQuesAskForm quesAskForm);
    
}
